home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Item MB Quick & Easy 2.0
/
Item MB Quick & Easy 2.0.iso
/
mbfacad
/
eaitzrn.lsp
< prev
next >
Wrap
Lisp/Scheme
|
1998-03-15
|
13KB
|
352 lines
;Zeichnungsrahmen erstellen
(defun EAITzrn ( AIT_ax AIT_ms1 AIT_ms2 / DAT1 SCH SCHBL
AIT-Z AIT-X AIT-Y AIT-P1 AIT-P2 AIT-dat AIT-txt
AIT-n AIT-ln AIT-Xmax AIT-Ymax AIT-mlst1 AIT-mlst2
AIT-Xr AIT-Yr AIT-AX AIT-AY AIT-ok masslist
AIT-Name AIT-Tag AIT-Jahr AIT-Masstab dialogwert
stichwort thema ebene blatt01 blattwert blatthoehe)
(EAITvari)
(EAITvars)
;Welt-Koord
(command EAITbks EAITbwe)
;Argumente OK?
(if (not AIT_ax)
(setq AIT_ax EAITax)
(setq EAITax AIT_ax
AIT_ms1 nil
AIT_ms2 nil
m_auto "0"
)
)
;Name, Datum, etc...
(setq AIT-dat (open (strcat EAITpfm "user.txt") "r"))
(if AIT-dat (progn
(setq AIT-txt (read-line AIT-dat) )
(close AIT-dat)
(if AIT-txt
(progn
(setq
AIT-Name ""
AIT-n 2
AIT-ln (strlen AIT-txt)
)
(while (and (<= AIT-n AIT-ln)(/= (substr AIT-txt AIT-n 1) "\""))
(setq AIT-Name (strcat AIT-Name (substr AIT-txt AIT-n 1))
AIT-n (1+ AIT-n)
)
)
)
(setq AIT-Name " ")
)
)
(setq AIT-Name " ")
)
(setq AIT-Tag (strcat (substr (rtos (getvar "cdate") 2 0) 7 2) "." (substr (rtos (getvar "cdate") 2 0) 5 2) ".")
AIT-Jahr (substr (rtos (getvar "cdate") 2 0) 1 4)
AIT-blatt "1 ( 1 )"
AIT-dwg (getvar "DWGNAME")
)
(setq
AIT-mlst1 (list 1.0 2.0 5.0 10.0 20.0 50.0 100.0 200.0 500.0 1000.0 0.5 0.2 0.1 0.05 )
AIT-mlst2 (list "1 : 1" "1 : 2" "1 : 5" "1 : 10" "1 : 20" "1 : 50" "1 : 100" "1 : 200" "1 : 500" "1 : 1000" "2 : 1" "5 : 1" "10 : 1" "20 : 1")
AIT-rahmenliste (list "DIN A4" "DIN A3" "DIN A2" "DIN A1" "DIN A0")
AIT_ms1 (nth 0 AIT-mlst1)
AIT_ms2 (nth 0 AIT-mlst2)
rahmen (nth 0 AIT-rahmenliste)
rahmennr 0
)
;Festlegung von Abmassen fuer Mansfengenerierung:
(setq
masslist (list
(list 210.0 297.0)(list 420.0 297.0)
(list 594.0 420.0)(list 841.0 594.0)
(list 1189.0 841.0)
)
)
(setq dat_zeig2 (load_dialog (strcat EAITpfd "EAITem.DCL")))
(if (not (new_dialog "rahmen" dat_zeig2)) (exit))
(start_list "masstab" 3)
(mapcar 'add_list AIT-mlst2)
(end_list)
(start_list "rahmen1" 3)
(mapcar 'add_list AIT-rahmenliste)
(end_list)
(setq thema "Hilfeeintrag fuer einen item-Befehl"
stichwort ":item1"
)
(action_tile "help" "(hilfe stichwort thema)")
(action_tile "m_auto" "(setq m_auto $value)(mode_tile \"masstab\" (atoi m_auto))")
(action_tile "masstab" "(setq AIT_ms1 (nth (atoi $value) AIT-mlst1) AIT_ms2 (nth (atoi $value) AIT-mlst2))")
(action_tile "rahmen1" "(setq rahmennr (atoi $value) rahmen (nth (atoi $value) AIT-rahmenliste))")
(action_tile "cancel" "(done_dialog 0)")
(action_tile "bemebene" "(done_dialog 3)")
(setq dialogwert (start_dialog))
(start_dialog)
(unload_dialog dat_zeig2)
;Anpassung Hauer-Projektarbeiten
;bei Plazierung im Papierbereich:
(if (= EAITmansfen3d "ok")
(setq AIT_dialogwert dialogwert)
)
(if (= dialogwert 3)
(progn
(if (= m_auto "1")
(setq
AIT_ms1 nil
AIT_ms2 nil
)
)
;Anpassung Hauer-Projektarbeiten
;bei Plazierung im Papierbereich Masstab = 1:1:
(if (= EAITmansfen3d "ok")
(progn
(setq
AIT_mauto m_auto
AIT_ms1a AIT_ms1
AIT_ms2a AIT_ms2
AIT_rahmen rahmen
AIT_rahmennr rahmennr
AIT_ms1 1.0
AIT_ms2 "1 : 1"
rxlu (car (nth AIT_rahmennr AIT-p1list))
rylu (cadr (nth AIT_rahmennr AIT-p1list))
plu (list rxlu rylu 0.0)
rxro (car (nth AIT_rahmennr masslist)) ryro (cadr (nth AIT_rahmennr masslist))
pro (list rxro ryro 0.0)
pro (polar pro 0.0 rxlu)
rahmendata (nth AIT_rahmennr masslist)
)
(command "_zoom" "_w" plu pro)
)
)
;Ende Anpassung Hauer-Projektarbeiten
(setq AIT_ax (substr rahmen 5 2))
;Vars zuweisen nach DIN A?
(if (> (caddr (getvar "extmin"))(caddr (getvar "extmax")))(setq AIT-Z(caddr (getvar "extmin")))(setq AIT-Z(caddr (getvar "extmax"))))
(cond ((= AIT_ax "A4") (setq AIT-Xmax 180.0 AIT-Ymax 195.0 AIT-AX 205.0 AIT-AY 5.0))
((= AIT_ax "A3") (setq AIT-Xmax 410.0 AIT-Ymax 287.0 AIT-AX 415.0 AIT-AY 5.0))
((= AIT_ax "A2") (setq AIT-Xmax 584.0 AIT-Ymax 410.0 AIT-AX 589.0 AIT-AY 5.0))
((= AIT_ax "A1") (setq AIT-Xmax 831.0 AIT-Ymax 584.0 AIT-AX 836.0 AIT-AY 5.0))
((= AIT_ax "A0") (setq AIT-Xmax 1179.0 AIT-Ymax 831.0 AIT-AX 1184.0 AIT-AY 5.0))
(T (setq AIT-Xmax 180.0 AIT-Ymax 195.0 AIT-AX 205.0 AIT-AY 5.0 AIT_ax "A4"))
)
;welcher Maßstab / ermitteln?
(if (or (not AIT_ms1)(not AIT_ms2))
(progn
(setq AIT-X (- (car (getvar "extmax"))(car (getvar "extmin")))
AIT-Y (- (cadr (getvar "extmax"))(cadr (getvar "extmin")))
AIT-n 1
AIT-Xr (* AIT-Xmax 0.05)
AIT-Yr (* AIT-Ymax 0.05)
)
(while (and (< AIT-n 14)(or (> AIT-X AIT-Xr)(> AIT-Y AIT-Yr)) )
(setq AIT-Xr (* AIT-Xmax (nth AIT-n AIT-mlst1))
AIT-Yr (* AIT-Ymax (nth AIT-n AIT-mlst1))
AIT-n (1+ AIT-n)
)
)
(if (> AIT-n 1)(setq AIT-n (1- AIT-n)))
(setq AIT-Masstab (nth AIT-n AIT-mlst2)
EAITms (nth AIT-n AIT-mlst1)
)
(setvar "DIMSCALE" EAITms)
)
(progn
(setq AIT-Masstab AIT_ms2 EAITms AIT_ms1 )
(setvar "DIMSCALE" EAITms)
)
)
(if (/= dialogwert1 1)
(progn
(if (not AIT-ok)(setq AIT-ok (EAITmg "mb_mld4" "004")))
;**************************
;Rahmen + Schriftfeld einfügen / Maßstab manuell
(if (= AIT-ok (EAITmg "mb_mld4" "004"))
(progn
(EAITmkr "S" nil) ;Maßstab-Faktor sichern
(setvar "DIMSCALE" EAITms)
(setvar "OSMODE" 0)
(setq AIT-P1(list 0.0 0.0 AIT-Z)
AIT-P2(list (* AIT-AX EAITms)(* AIT-AY EAITms) AIT-Z)
)
;Anpassung Hauer-Projektarbeiten EP anpassen
;bei Plazierung im Papierbereich mehrere Rahmen moeglich:
(if (= EAITmansfen3d "ok")
(progn
(setq AIT-P1 (nth AIT_rahmennr AIT-p1list)
AIT-P2 (polar AIT-P1 0.0 AIT-AX)
AIT-P2 (polar AIT-P2 (/ pi 2) AIT-AY)
)
;schon ein Blatt in der Groesse eingefuegt:
(if (or (/= (member AIT_rahmen AIT-noblattlist) nil)(/= (member AIT_rahmen AIT-blattlist) nil))
(progn
(setq blatthoehe (+ (cadr (nth AIT_rahmennr masslist)) 100))
;Checken des EP:
(while (or (/= (member AIT-P1 AIT-plulist) nil)(/= (member AIT-P1 AIT-noplulist) nil))
(setq
AIT-P1 (polar AIT-P1 (/ pi 2) blatthoehe)
AIT-P2 (polar AIT-P2 (/ pi 2) blatthoehe)
plu AIT-P1
rxro (car (nth AIT_rahmennr masslist)) ryro (cadr (nth AIT_rahmennr masslist))
pro (polar plu 0.0 rxro)
pro (polar pro (/ pi 2) ryro)
)
) ;while
(command "_zoom" "_w" plu pro)
) ;progn
) ;if
) ;progn
) ;if
(if (NOT (tblsearch "BLOCK" "EAITtbox"))
(command EAITege (strcat EAITpfm "EAITtbox") '(0 0) nil)
)
(setq SCH (tblsearch "BLOCK" "EAITtbox")
SCHBL (entnext (EAITDXF -2 SCH))
DAT1 (entget SCHBL)
)
(if (= (EAITDXF 3 DAT1) "")
(progn
(command EAITege (strcat "EAITtbox=" EAITpfm "EAITtbox") '(0 0) nil
EAITreg
)
;*******************Schriftfeld sprachabhaengig machen
(setq INF (tblsearch "BLOCK" "EAITtbox")
DAT1 (entget (EAITDXF -2 INF))
)
(while (/= DAT1 nil)
(if (= (EAITDXF 0 DAT1) "ATTDEF")
(cond ((= (EAITDXF 2 DAT1) "EAIT_DESIGNATION-1")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "002"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_DESIGNATION-2")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "003"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_NUMBER")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "004"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_MATERIAL")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "005"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_SHEET")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "006"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_SCALE-1")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "007"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_SCALE-2")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "008"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_YEAR")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "009"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_DAY")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "010"))(assoc 3 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_DESIGNER")
(entmod (subst (cons 3 (EAITmg "mb_mld20" "011"))(assoc 3 DAT1) DAT1))
)
);cond
);if
(setq DAT1 (entnext (EAITDXF -1 DAT1)))
(if (/= DAT1 nil)(setq DAT1 (entget DAT1)))
);while
);progn
);if
(command EAITege (strcat EAITpfn "EAIT" AIT_ax) AIT-P1 EAITms "" "")
;Anpassung Projektarbeiten Hauer:
(setq AIT_rahmenelement (entlast))
;Ende Anpassung Hauer
(command EAITege (strcat EAITpfm "EAITtbox") AIT-P2 EAITms "" "" "" "" "" "" "" "" "" "" "" "")
;Anpassung Projektarbeiten Hauer:
(setq AIT_schriftfeldelement (entlast))
;Ende Anpassung Hauer
;*******************Schriftfeld-Eintraege setzen
(setq SCH (entget (entlast))
SCHBL (entnext (EAITDXF -1 SCH))
DAT1 (entget SCHBL)
)
(while (= (EAITDXF 0 DAT1) "ATTRIB")
(cond
((= (EAITDXF 2 DAT1) "EAIT_NUMBER")
(entmod (subst (cons 1 (getvar "dwgname"))(assoc 1 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_SCALE-1")
(entmod (subst (cons 1 AIT-Masstab)(assoc 1 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_YEAR")
(entmod (subst (cons 1 AIT-Jahr)(assoc 1 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_DAY")
(entmod (subst (cons 1 AIT-Tag)(assoc 1 DAT1) DAT1))
)
((= (EAITDXF 2 DAT1) "EAIT_DESIGNER")
(entmod (subst (cons 1 AIT-Name)(assoc 1 DAT1) DAT1))
)
);cond
(setq DAT1 (entget (entnext (EAITDXF -1 DAT1))))
);while
;*****************Schriftfeld ergaenzen (DDATTE zur Benutzereingabe)
(command EAITdda (entlast)
EAITreg
)
(command EAITbks EAITbvo)
(EAITvarz)
)
(progn
(command EAITbks EAITbvo)
(EAITvarz)
(menucmd "i=din-ms")
(menucmd "i=*")
)
)
(princ)
)
)
);progn
);if
(princ)
)
(princ)